在完成這一系列的介紹後,我們從零開始,逐步開發了一個客製化的 AI 旅遊即時聊天機器人,慢慢的對生成式 AI 有一定的基礎,從最初的設計概念,到逐步實現 OpenAI 聊天室功能,再到成功整合 FastAPI、Azure OpenAI、ChromaDB、WebSocket 等技術,我們不僅學會了如何讓這些工具協同工作,更掌握了如何處理像是意圖分析、實時通信、資料查詢等複雜功能。接下來,我會再詳細介紹整個開發流程。
核心目標——建立一個能即時回應旅遊問題的 AI 聊天機器人。這個機器人要能夠根據使用者的提問,提供台北市景點的介紹、交通、地址、營業時間等實用資訊。
前端:使用 Next.js 建立聊天介面,讓使用者能與聊天機器人互動。
後端:使用 FastAPI 和 Azure OpenAI 實作生成 AI 回應的功能,並與前端進行 WebSocket 通信。
資料庫:使用 ChromaDB 儲存旅遊景點的資料和意圖資料,並進行快速查詢。
意圖識別:利用 Azure OpenAI 來分析使用者的提問,從中辨識意圖,並查詢相關的景點資料。
第一步是搭建基本的聊天系統。我們使用了 FastAPI 作為後端框架,並與 Azure OpenAI API 進行串接,讓聊天機器人能夠根據使用者的輸入生成回應。我們還使用 WebSocket 來實現即時通信,確保前端與後端的消息能夠即時傳遞。
為了讓聊天機器人能夠辨識使用者的問題並給出準確的旅遊資訊,我們建立了兩個關鍵資料庫:
在建立好意圖與景點資料庫後,接下來是實作意圖執行的功能。我們使用 Azure OpenAI 來分析使用者的輸入,從中辨識出具體的意圖,並從 ChromaDB 查詢相關景點的資料。
為了支援多用戶同時使用聊天機器人,我們擴展 WebSocket ,為每個使用者生成唯一的 user_id,並確保每個 WebSocket 連接能夠識別不同的用戶。
我們已經成功建立了客製化的 AI 聊天機器人,支援台北旅遊資訊查詢,並能夠即時回應多個使用者的問題。